1. Technical Field
This disclosure generally relates to analyzing composite applications, and more specifically relates to automated analysis of composite applications for conformance to a set of rules that specify interaction between components.
2. Background Art
Computer programs have evolved over the years, beginning with simple programs written in assembly code to relatively complex programs writing in a high level language. Recent developments in computer programming include writing different portions of a complex computer program in different programming languages. Service Component Architecture (SCA) is an initiative advocated by several major software vendors that specifies requirements for applications that conform to service-oriented architecture. In SCA, applications are referred to as “composite applications” because they are made up of a number of different components in multiple programming languages. International Business Machines Corporation (IBM) offers a product known as WebSphere that supports development of composite applications known as Service Component Architecture (SCA) applications.
The steps of analyzing a composite application such as an SCA application is currently done by importing the application into a WebSphere tool. A programmer then manually inspects components of applications for accepted best and worst practices, and reports findings back to the customer. Due to human nature, important details may be glossed over or completely missed, negatively impacting support provided to the customer. Results generated by this manual process are also likely to be inconsistent over time and as new rules are created, earlier results are not recreated due to the labor cost associated with such an effort.
Known tools for software analysis allow performing static analysis of computer program written in a single language, but do not support analyzing a composite application with multiple components written in different programming languages. Without a way to automate the analysis of composite applications, the current manual process will continue to be error-prone and inefficient.